home *** CD-ROM | disk | FTP | other *** search
/ Small Time Crooks Press Kit / Small Time Crooks Press Kit.iso / pc / Small Time Crooks.dxr / Scripts_9_Bitmap But 2.ls < prev    next >
Encoding:
Text File  |  2000-04-30  |  8.8 KB  |  298 lines

  1. property pNumberTransitionStates, spriteNum, pToggleStyle, pToggleGroupName, pToggleGroupList, pGroupDefault, pToggleOffable, pSelfToggling, pToggleOn_OthersOff, pToggleAllOff_DefaultOn, pNormMember, pCurrentState, pToggleState, pMouseDownWithin, pMouseWithin
  2.  
  3. on new me, inSpriteNum, inNumTrans, inTogSty, inTogGrup, inTogState, inTogOffbl, inSelfTog, inTogOnOthOff, inTogAllOffDefOn
  4.   set spriteNum to inSpriteNum
  5.   set pNumberTransitionStates to inNumTrans
  6.   if voidp(inTogSty) then
  7.     set pToggleStyle to 0
  8.   else
  9.     set pToggleStyle to inTogSty
  10.   end if
  11.   if voidp(inTogGrup) then
  12.     set pToggleGroupName to EMPTY
  13.   else
  14.     set pToggleGroupName to inTogGrup
  15.   end if
  16.   if voidp(inTogState) then
  17.     set pToggleState to #off
  18.   else
  19.     set pToggleState to inTogState
  20.   end if
  21.   if voidp(inTogOffbl) then
  22.     set pToggleOffable to 1
  23.   else
  24.     set pToggleOffable to inTogOffbl
  25.   end if
  26.   if voidp(inSelfTog) then
  27.     set pSelfToggling to 1
  28.   else
  29.     set pSelfToggling to inSelfTog
  30.   end if
  31.   if voidp(inTogOnOthOff) then
  32.     set pToggleOn_OthersOff to 0
  33.   else
  34.     set pToggleOn_OthersOff to inTogOnOthOff
  35.   end if
  36.   if voidp(inTogAllOffDefOn) then
  37.     set pToggleAllOff_DefaultOn to 0
  38.   else
  39.     set pToggleAllOff_DefaultOn to inTogAllOffDefOn
  40.   end if
  41.   beginSprite(me)
  42.   return me
  43. end
  44.  
  45. on beginSprite me
  46.   set pCurrentState to #norm
  47.   set pNormMember to the memberNum of sprite the spriteNum of me
  48.   if not pToggleStyle then
  49.     set pToggleState to #off
  50.   end if
  51.   if pToggleState = #on then
  52.     set pGroupDefault to 1
  53.     setstate(me, #norm)
  54.   end if
  55.   set pToggleGroupList to [me]
  56.   if not (pToggleGroupName = EMPTY) then
  57.     sendAllSprites(#AppendToListIfToggleGroupNameMatchesInput, pToggleGroupName, pToggleGroupList)
  58.   end if
  59. end
  60.  
  61. on mouseEnter me
  62.   if pCurrentState = #dead then
  63.     exit
  64.   end if
  65.   if (pToggleState = #on) and pSelfToggling and not pToggleOffable then
  66.     exit
  67.   end if
  68.   if the mouseDown then
  69.     mouseDown(me)
  70.   else
  71.     setstate(me, #roll)
  72.     sendSprite(the spriteNum of me, #MouseEnterAction)
  73.     set pMouseDownWithin to 0
  74.     set pMouseWithin to 1
  75.   end if
  76. end
  77.  
  78. on mouseDown me
  79.   if pCurrentState = #dead then
  80.     exit
  81.   end if
  82.   if (pToggleState = #on) and pSelfToggling and not pToggleOffable then
  83.     exit
  84.   end if
  85.   setstate(me, #down)
  86.   sendSprite(the spriteNum of me, #MouseDownAction)
  87.   set pMouseDownWithin to 1
  88.   set pMouseWithin to 0
  89. end
  90.  
  91. on mouseUp me
  92.   if pCurrentState = #dead then
  93.     exit
  94.   end if
  95.   if (pToggleState = #on) and pSelfToggling and not pToggleOffable then
  96.     exit
  97.   end if
  98.   if pToggleStyle then
  99.     if pSelfToggling then
  100.       toggle(me)
  101.     end if
  102.   end if
  103.   if (pToggleState = #on) and not pToggleOffable then
  104.     setstate(me, #norm)
  105.   else
  106.     setstate(me, #roll)
  107.   end if
  108.   sendSprite(the spriteNum of me, #MouseUpAction)
  109.   set pMouseDownWithin to 0
  110.   set pMouseWithin to 1
  111. end
  112.  
  113. on mouseLeave me
  114.   if pCurrentState = #dead then
  115.     exit
  116.   end if
  117.   if (pToggleState = #on) and pSelfToggling and not pToggleOffable then
  118.     exit
  119.   end if
  120.   setstate(me, #norm)
  121.   sendSprite(the spriteNum of me, #MouseLeaveAction)
  122.   set pMouseDownWithin to 0
  123.   set pMouseWithin to 0
  124. end
  125.  
  126. on mouseWithin me
  127.   if pCurrentState = #dead then
  128.     exit
  129.   end if
  130.   if (pToggleState = #on) and pSelfToggling and not pToggleOffable then
  131.     exit
  132.   end if
  133.   if the mouseUp and pMouseDownWithin then
  134.     mouseUp(me)
  135.   else
  136.     if the mouseUp and not pMouseWithin then
  137.       mouseEnter(me)
  138.     end if
  139.   end if
  140. end
  141.  
  142. on setstate me, state
  143.   set pCurrentState to state
  144.   if pToggleState = #off then
  145.     case pCurrentState of
  146.       #dead:
  147.         set the memberNum of sprite the spriteNum of me to pNormMember - 1
  148.       #norm:
  149.         set the memberNum of sprite the spriteNum of me to pNormMember
  150.       #roll:
  151.         if pNumberTransitionStates = 3 then
  152.           nothing()
  153.         else
  154.           set the memberNum of sprite the spriteNum of me to pNormMember + 1
  155.         end if
  156.       #down:
  157.         if pNumberTransitionStates = 3 then
  158.           set the memberNum of sprite the spriteNum of me to pNormMember + 1
  159.         else
  160.           set the memberNum of sprite the spriteNum of me to pNormMember + 2
  161.         end if
  162.     end case
  163.   else
  164.     case pCurrentState of
  165.       #dead:
  166.         case pNumberTransitionStates of
  167.           3:
  168.             set the memberNum of sprite the spriteNum of me to pNormMember - 1
  169.           4:
  170.             set the memberNum of sprite the spriteNum of me to pNormMember - 1
  171.           5:
  172.             set the memberNum of sprite the spriteNum of me to pNormMember - 1
  173.           6:
  174.             set the memberNum of sprite the spriteNum of me to pNormMember - 1
  175.           8:
  176.             set the memberNum of sprite the spriteNum of me to pNormMember + 3
  177.         end case
  178.       #norm:
  179.         case pNumberTransitionStates of
  180.           3:
  181.             set the memberNum of sprite the spriteNum of me to pNormMember + 1
  182.           4:
  183.             set the memberNum of sprite the spriteNum of me to pNormMember + 2
  184.           5:
  185.             set the memberNum of sprite the spriteNum of me to pNormMember + 2
  186.           6:
  187.             set the memberNum of sprite the spriteNum of me to pNormMember + 2
  188.           8:
  189.             set the memberNum of sprite the spriteNum of me to pNormMember + 4
  190.         end case
  191.       #roll:
  192.         case pNumberTransitionStates of
  193.           3:
  194.             nothing()
  195.           4:
  196.             set the memberNum of sprite the spriteNum of me to pNormMember + 1
  197.           5:
  198.             set the memberNum of sprite the spriteNum of me to pNormMember + 3
  199.           6:
  200.             set the memberNum of sprite the spriteNum of me to pNormMember + 3
  201.           8:
  202.             set the memberNum of sprite the spriteNum of me to pNormMember + 5
  203.         end case
  204.       #down:
  205.         case pNumberTransitionStates of
  206.           3:
  207.             set the memberNum of sprite the spriteNum of me to pNormMember
  208.           4:
  209.             set the memberNum of sprite the spriteNum of me to pNormMember
  210.           5:
  211.             set the memberNum of sprite the spriteNum of me to pNormMember
  212.           6:
  213.             set the memberNum of sprite the spriteNum of me to pNormMember + 4
  214.           7:
  215.             set the memberNum of sprite the spriteNum of me to pNormMember + 6
  216.         end case
  217.     end case
  218.   end if
  219. end
  220.  
  221. on toggle me
  222.   if pToggleState = #on then
  223.     set pToggleState to #off
  224.     if pToggleAllOff_DefaultOn then
  225.       ToggleDefaultOnIfAllOff()
  226.     end if
  227.   else
  228.     set pToggleState to #on
  229.     if pToggleOn_OthersOff then
  230.       repeat with buttonObject in pToggleGroupList
  231.         if the spriteNum of buttonObject = the spriteNum of me then
  232.           next repeat
  233.         end if
  234.         ToggleOff(buttonObject)
  235.       end repeat
  236.     end if
  237.   end if
  238. end
  239.  
  240. on AppendToListIfToggleGroupNameMatchesInput me, groupName, inputList
  241.   if groupName = EMPTY then
  242.     exit
  243.   end if
  244.   if groupName = pToggleGroupName then
  245.     append(inputList, me)
  246.     set pToggleGroupList to inputList
  247.   end if
  248. end
  249.  
  250. on ToggleDefaultOnIfAllOff me
  251.   set foundOn to 0
  252.   repeat with buttonObject in pToggleGroupList
  253.     if the pToggleState of buttonObject then
  254.       set foundOn to 1
  255.       exit repeat
  256.     end if
  257.   end repeat
  258.   if not foundOn then
  259.     repeat with buttonObject in pToggleGroupList
  260.       if the pGroupDefault of buttonObject = 1 then
  261.         set the pToggleState of buttonObject to #on
  262.         setstate(buttonObject, the pCurrentState of buttonObject)
  263.         exit repeat
  264.       end if
  265.     end repeat
  266.   end if
  267. end
  268.  
  269. on ToggleOff me
  270.   set pToggleState to #off
  271.   setstate(me, pCurrentState)
  272. end
  273.  
  274. on getPropertyDescriptionList me
  275.   set description to [:]
  276.   addProp(description, #pNumberTransitionStates, [#default: 4, #format: #symbol, #comment: "Number Of Transition States", #range: [3, 4, 8]])
  277.   addProp(description, #pToggleStyle, [#default: 0, #format: #boolean, #comment: "Toggle Style Button"])
  278.   addProp(description, #pToggleState, [#default: #off, #format: #symbol, #comment: "Initial State  (#on indicates group default)", #range: [#off, #on]])
  279.   addProp(description, #pToggleGroupName, [#default: EMPTY, #format: #text, #comment: "Optional Toggle Group Name"])
  280.   addProp(description, #pToggleOn_OthersOff, [#default: 0, #format: #boolean, #comment: "Toggling On Turns Others In Group Off"])
  281.   addProp(description, #pToggleOffable, [#default: 1, #format: #boolean, #comment: "Can Be Toggled Off"])
  282.   addProp(description, #pToggleAllOff_DefaultOn, [#default: 0, #format: #boolean, #comment: "Toggling Off Turns Group Default On"])
  283.   return description
  284. end
  285.  
  286. on getBehaviorDescription me
  287.   set endChar to offset("--END OF HEADER", the text of me)
  288.   set endLine to the number of lines in char 1 to endChar of the text of me - 1
  289.   set description to line 1 to endLine of the text of me
  290.   repeat with whichLine = endLine down to 1
  291.     if line whichLine of description = EMPTY then
  292.       delete line whichLine of description
  293.     end if
  294.   end repeat
  295.   delete line 1 of description
  296.   return description
  297. end
  298.